Avastage CSS @property vĂ”imsus, et defineerida ja valideerida kohandatud omadusi, parandades koodi hooldatavust, disaini jĂ€rjepidevust ja dĂŒnaamilist stiilimist oma projektides. Tutvuge praktiliste nĂ€idete ja globaalsete parimate tavadega.
CSS @property: Kohandatud omaduste tĂŒĂŒpide defineerimine ja valideerimine
Pidevalt arenevas veebiarenduse maailmas nĂ”uab esirinnas pĂŒsimine uute tehnoloogiate ja tehnikate omaksvĂ”tmist, mis suurendavad tĂ”husust, hooldatavust ja ĂŒldist kasutajakogemust. CSS-i kohandatud omadused, tuntud ka kui CSS-i muutujad, on muutnud pöördeliselt viisi, kuidas me stiile haldame ja kontrollime. @property at-reegli kasutuselevĂ”tuga saab CSS veelgi vĂ”imsama tööriista: vĂ”ime defineerida ja valideerida neid kohandatud omadusi, mis viib robustsema ja prognoositavama stiilimiseni.
Mis on CSS @property?
@property at-reegel vĂ”imaldab arendajatel defineerida kohandatud omaduste tĂŒĂŒbi, sĂŒntaksi ja muid omadusi. MĂ”elge sellest kui viisist pakkuda oma CSS-i muutujatele struktuuri ja valideerimist. Enne @property-d olid CSS-i muutujad sisuliselt lihtsalt tekstistringid, mis vĂ”isid sisaldada mida iganes. See struktuuri puudumine vĂ”is pĂ”hjustada vigu, muutes silumise keerulisemaks ja takistades ĂŒldist disaini jĂ€rjepidevust. @property lahendab need probleemid, pakkudes mehhanismi, millega kontrollida kohandatud omadustele mÀÀratavate vÀÀrtuste tĂŒĂŒpe.
Miks kasutada CSS @property't? Kasu ja eelised
@property kasutamise eelised on arvukad ja aitavad otseselt kaasa parematele veebiarenduse tavadele:
- Parem koodi hooldatavus: Kohandatud omaduste tĂŒĂŒpide ja kĂ€itumise selgesĂ”nalise defineerimisega muudate oma koodi isedokumenteerivamaks ja kergemini mĂ”istetavaks. Teised arendajad (vĂ”i teie tulevane mina) saavad kiiresti aru, kuidas kohandatud omadust on mĂ”eldud kasutama.
- Parem disaini jĂ€rjepidevus: Valideerimine tagab, et kohandatud omadustele mÀÀratakse ainult kehtivaid vÀÀrtusi. See aitab sĂ€ilitada ĂŒhtlast visuaalset ilmet kogu teie veebisaidil vĂ”i rakenduses.
- Töökindlus ja vigade ennetamine: Kehtetud vÀÀrtused lĂŒkatakse tagasi, vĂ€ltides ootamatuid stiiliprobleeme ja vĂ€hendades silumisele kuluvat aega.
- DĂŒnaamiline stiilimine:
@propertyvÔimaldab paremat integreerimist JavaScriptiga, lubades teil programmeerimislikult kontrollida ja uuendada oma CSS-i muutujaid kindlalt, teades, et vÀÀrtused on kehtivad. - Parem automaatne tÀiendamine ja arendajakogemus: Koodiredaktorid saavad pakkuda intelligentsemat automaatset tÀiendamist ja koodivihjeid, aidates arendajatel kirjutada CSS-i kiiremini ja tÀpsemalt.
- Optimeeritud jĂ”udlus: Kuigi jĂ”udlusmĂ”ju on ĂŒldiselt vĂ€ike, vĂ”ib valideerimine mĂ”nikord viia brauseri poolt tehtavate vĂ€iksemate optimeerimisteni.
@property reegli pÔhikomponendid
@property at-reegel koosneb mitmest vÔtmekomponendist, mis defineerivad, kuidas kohandatud omadus kÀitub.
--property-name
See on kohandatud omaduse nimi, mida te defineerite. See peab algama kahe sidekriipsuga (--), nagu on CSS-i kohandatud omaduste puhul standard.
@property --my-color { ... }
syntax
syntax deskriptor defineerib kohandatud omaduse vÀÀrtuste lubatud tĂŒĂŒbi vĂ”i mustri. See kasutab CSS-i sĂŒntaksi alamhulka ja vĂ”ib vĂ”tta erinevaid vÀÀrtusi, sealhulgas:
<color>: Esindab vĂ€rvivÀÀrtust (ntred,#FF0000,rgba(255, 0, 0, 1)).<length>: Esindab pikkusvÀÀrtust (nt10px,5em,20%).<number>: Esindab arvvÀÀrtust (nt10,3.14).<percentage>: Esindab protsentuaalset vÀÀrtust (nt50%).<url>: Esindab URL-i (nturl('image.jpg')).<integer>: Esindab tĂ€isarvulist vÀÀrtust (nt10,-5).<angle>: Esindab nurga vÀÀrtust (nt45deg,0.5turn).<time>: Esindab ajavÀÀrtust (nt2s,200ms).<string>: Esindab stringivÀÀrtust.<image>: Esindab pildivÀÀrtust (sama mis url).*: Aktsepteerib mis tahes kehtivat CSS-vÀÀrtust. See on vĂ€ga lubav lĂ€henemine ja seda tuleks kasutada ettevaatlikult.- Kombineeritud tĂŒĂŒbid: Saate kombineerida mitut tĂŒĂŒpi, kasutades tĂŒhikutega eraldatud loendeid (nt
<length> <length> <length>kolme pikkusvÀÀrtuse defineerimiseks) vĂ”i kasutada '|' sĂŒmbolit, et lubada ĂŒkskĂ”ik millist loetletud tĂŒĂŒpidest (nt<length> | <percentage>pikkuse vĂ”i protsendi toetamiseks). - Kohandatud sĂŒntaksid: Kohandatud sĂŒntakseid keerukamate stsenaariumide jaoks toetavad sageli kohandatud implementatsioonid, kuigi neid kirjeldatakse tavaliselt regex-stiilis sĂŒntaksiga, nagu nĂ€iteks
[a-z]+.
@property --base-color {
syntax: <color>;
inherits: false;
initial-value: #333;
}
inherits
inherits deskriptor mÀÀrab, kas kohandatud omadus pÀrib oma vÀÀrtuse oma vanem-elemendilt. Vaikimisi kohandatud omadused ei pÀri. Seda kÀitumist saab kontrollida loogikavÀÀrtusega: true vÔi false.
@property --font-size {
syntax: <length>;
inherits: true;
initial-value: 16px;
}
initial-value
initial-value deskriptor mÀÀrab kohandatud omaduse vaikevÀÀrtuse, kui see pole CSS-is selgesÔnaliselt defineeritud. See pakub varuvÀÀrtust, kui omadust pole mÀÀratud, sarnaselt standardsete CSS-omaduste kÀitumisega.
@property --border-width {
syntax: <length>;
inherits: false;
initial-value: 1px;
}
Praktilised nÀited
SĂŒveneme mĂ”nesse praktilisse nĂ€itesse, et illustreerida, kuidas @property't tĂ”husalt kasutada.
NĂ€ide 1: VĂ€rviomaduse defineerimine
Selles nĂ€ites defineerime kohandatud omaduse --primary-color, et esindada meie disainisĂŒsteemis pĂ”hivĂ€rvi. MÀÀrame, et see aktsepteerib ainult vĂ€rvivÀÀrtusi.
@property --primary-color {
syntax: <color>;
inherits: false;
initial-value: #007bff;
}
body {
--primary-color: #007bff; /* Kehtiv */
color: var(--primary-color);
}
h1 {
--primary-color: rgb(255, 0, 0); /* Kehtiv */
color: var(--primary-color);
}
NĂ€ide 2: Pikkusomaduse defineerimine
Siin defineerime kohandatud omaduse --spacing elementide vahekauguste haldamiseks, aktsepteerides pikkusvÀÀrtusi. See nĂ€ide demonstreerib selgelt `initial-value` mÀÀramise vÀÀrtust kogu saidi vaikimisi seadena. See on eriti kasulik disainisĂŒsteemi kasutamisel, kus vahekauguste vaikeseaded on defineeritud.
@property --spacing {
syntax: <length>;
inherits: false;
initial-value: 1rem;
}
p {
margin-bottom: var(--spacing);
}
NĂ€ide 3: TĂ€isarvuomaduse defineerimine
See nÀide defineerib kohandatud omaduse ruudustiku paigutuse veergude arvu jaoks, valideerides, et vÀÀrtus on tÀisarv.
@property --grid-columns {
syntax: <integer>;
inherits: false;
initial-value: 3;
}
.grid-container {
display: grid;
grid-template-columns: repeat(var(--grid-columns), 1fr);
}
NÀide 4: Omaduse pÀrimine
Siin defineerime kohandatud omaduse, mis *pĂ€ritakse*. Body'le mÀÀratud `font-size` omadus vÀÀrtusega `1rem` mĂ”jutab kĂ”iki selle laps-elemente, kui seda just ĂŒle ei kirjutata.
@property --font-size {
syntax: <length>;
inherits: true;
initial-value: 1rem;
}
body {
--font-size: 1rem;
font-size: var(--font-size);
}
h2 {
font-size: 1.25rem; /* Kirjutab pĂ€ritud vÀÀrtuse ĂŒle */
}
NĂ€ide 5: TĂŒĂŒpide kombineerimine
Kasutades '|' operaatorit, saame tĂŒĂŒpe kombineerida. Siin aktsepteerime varju nihke jaoks kas `length` vĂ”i `percentage` vÀÀrtust.
@property --shadow-offset {
syntax: <length> | <percentage>;
inherits: false;
initial-value: 0;
}
.box {
box-shadow: 0 var(--shadow-offset) var(--shadow-offset) gray;
}
Parimad tavad @property kasutamiseks
Et maksimeerida @property'st saadavat kasu, jÀrgige neid parimaid tavasid:
- Defineerige omadused keskses asukohas: Grupeerige oma
@propertydefinitsioonid eraldi CSS-faili vĂ”i sektsiooni, sageli oma peamise stiililehe ĂŒlaossa vĂ”i disainisĂŒsteemi faili. See soodustab organiseeritust ja muudab kohandatud omaduste haldamise lihtsaks. - Kasutage kirjeldavaid omaduste nimesid: Valige nimed, mis viitavad selgelt iga kohandatud omaduse eesmĂ€rgile (nt
--primary-button-color,--header-font-size). See parandab loetavust ja mĂ”istetavust. - Pakkuge pĂ”hjalikku dokumentatsiooni: Dokumenteerige oma kohandatud omadused, sealhulgas nende sĂŒntaks, kasutus ja mis tahes piirangud. Selle dokumentatsiooni vĂ”ib lisada kommentaaride vormis oma CSS-i kĂ”rvale vĂ”i eraldi stiilijuhendisse.
- Valige Ă”ige sĂŒntaks: Valige hoolikalt iga omaduse jaoks sobiv
syntax. Ăige sĂŒntaksi kasutamine ennetab vigu ja tagab, et mÀÀratud vÀÀrtused on kehtivad. - Kaaluge pĂ€rimist hoolikalt: Otsustage, kas omadus peaks pĂ€rima oma vÀÀrtuse oma vanem-elemendilt. See sĂ”ltub omaduse olemusest ja sellest, kuidas seda tuleks teie disainis rakendada.
- Kasutage
initial-value't strateegiliselt: MÀÀrakeinitial-valuekĂ”igile kohandatud omadustele, mis nĂ”uavad vaikevÀÀrtust. See pakub varuvarianti ja tagab, et stiil rakendub ka siis, kui omadust pole selgesĂ”naliselt mÀÀratud. - Kasutage disainisĂŒsteeme: Integreerige
@propertyoma disainisĂŒsteemi, et sĂ€ilitada jĂ€rjepidevus ja parandada oma meeskonna arendustöövoogu. Kasutades seda koos teiste komponentidega, loote robustsemaid ja modulaarsemaid disaine, mis on sageli eesmĂ€rk globaalseks kasutamiseks mĂ”eldud komponentide loomisel. - Testige pĂ”hjalikult: Testige oma kohandatud omadusi ja nende kĂ€itumist erinevates brauserites ja seadmetes, et tagada ĂŒhilduvus ja ĂŒhtlane kasutajakogemus. BrauseriĂŒlene testimine on kriitiline samm, kuna `property` tugi pole veel universaalselt rakendatud.
BrauseriĂŒhilduvus
26. oktoobri 2023 seisuga on @property at-reegli tugi brauserites erinev. Chrome, Edge ja Safari toetavad seda hĂ€sti, samas kui Firefoxi tugi on piiratud. BrauseriĂŒhilduvuse kohta ajakohase teabe saamiseks konsulteerige alati ressurssidega nagu Can I Use ([https://caniuse.com/mdn-css_at-rules_property](https://caniuse.com/mdn-css_at-rules_property)).
Olulised kaalutlused brauseriĂŒhilduvuse osas:
- Funktsionaalsuse tuvastamine: Kasutage funktsionaalsuse tuvastamise tehnikaid, et sujuvalt hallata brausereid, mis ei toeta
@property't. Saate kasutada CSS-i omaduse kontrolli vĂ”i JavaScripti funktsionaalsuse tuvastamist, et rakendada alternatiivseid stiile vĂ”i polĂŒfille. - Progressiivne tĂ€iustamine: Kujundage oma veebisait baasstiiliga, mis töötab ilma
@property'ta. SeejĂ€rel tĂ€iustage disaini jĂ€rk-jĂ€rgult, lisades@propertytoe ĂŒhilduvates brauserites. - PolĂŒfillid ja varuvariandid: Kaaluge polĂŒfillide kasutamist vĂ”i varuvariantide pakkumist brauseritele, mis ei toeta tĂ€ielikult
@property't. See vÔib hÔlmata tavaliste CSS-muutujate kasutamist vÔi eeltöötlust SASS-i, LESS-i vÔi muude metoodikate abil.
CSS @property kasutamine JavaScriptiga
Ăks CSS-i kohandatud omaduste suurimaid eeliseid on nende vĂ”ime olla manipuleeritav JavaScriptiga, vĂ”imaldades dĂŒnaamilist stiilimist ja paremaid kasutajakogemusi. @property tĂ€iustab seda vĂ”imekust, muutes CSS-i ja JavaScripti vahelise integratsiooni veelgi vĂ”imsamaks ja prognoositavamaks.
Siin on, kuidas saate JavaScriptis suhelda @property abil defineeritud kohandatud omadustega:
- Kohandatud omaduse vÀÀrtuse saamine: Kasutage
getPropertyValue(), et hankida kohandatud omaduse vÀÀrtus.const element = document.querySelector('.my-element'); const primaryColor = getComputedStyle(element).getPropertyValue('--primary-color'); console.log(primaryColor); // nt "#007bff" - Kohandatud omaduse vÀÀrtuse mÀÀramine: Kasutage
setProperty(), et mÀÀrata kohandatud omaduse vÀÀrtus. `@property` definitsioonisyntaxparameetri tÔttu vÔib JavaScripti-pÔhine mÀÀramine kÀivitada vÀÀrtuse valideerimise brauseris.element.style.setProperty('--primary-color', 'green');
NĂ€ide: DĂŒnaamiline vĂ€rvimuutus JavaScriptiga
Illustreerime, kuidas luua dĂŒnaamilist vĂ€rvimuutust JavaScripti ja @property abil.
HTML:
<button class="my-button">Muuda vÀrvi</button>
CSS:
@property --button-color {
syntax: <color>;
inherits: false;
initial-value: #007bff;
}
.my-button {
background-color: var(--button-color);
color: white;
padding: 10px 20px;
border: none;
cursor: pointer;
}
JavaScript:
const button = document.querySelector('.my-button');
button.addEventListener('click', () => {
const newColor = 'red'; // VÔiks pÔhineda mingil loogikal/sisendil
button.style.setProperty('--button-color', newColor);
});
Selles nÀites muudab nupule klÔpsamine nupu taustavÀrvi, muutes JavaScripti abil --button-color kohandatud omadust.
Rahvusvahelistamine (i18n) ja CSS @property
CSS @property vÔib olla vÀÀrtuslik tööriist veebirakenduste loomisel, mis toetavad erinevaid keeli ja lokaate. Siin on, kuidas seda saab rakendada i18n-i puhul:
- TĂŒpograafia: Defineerige kohandatud omadused kirjasuuruste, reavahede ja kirjastiilide jaoks, mis vĂ”imaldab teil kohandada teksti vĂ€limust vastavalt valitud keelele.
- Paigutus: Kasutage omadusi vahekauguste, marginaalide ja polsterduste jaoks, et kohaneda teksti suuna variatsioonidega (nt vasakult-paremale vs. paremalt-vasakule) ja erinevate mÀrkide laiustega.
- VÀrvid: Kasutage omadusi kasutajaliidese elementide vÀrvide jaoks, nagu nupuvÀrvid, tekstivÀrvid ja taustavÀrvid. Neid saab kohandada vastavalt kultuurilistele eelistustele vÔi konkreetsete piirkondade disainijuhistele.
- Teksti suund: Kasutage kohandatud omadust teksti suuna kontrollimiseks (nt
ltr,rtl) ja muutke paigutust vastavalt.
NĂ€ide: Kirjasuuruste kohandamine vastavalt keelele
Selles nÀites demonstreerime, kuidas kohandada pealkirjade kirjasuurust vastavalt valitud keelele. LÀhenemine kasutaks JavaScripti teeki, et mÀÀrata sobiv keel ja seada kohandatud omadused.
@property --heading-font-size {
syntax: <length>;
inherits: false;
initial-value: 2rem;
}
h1 {
font-size: var(--heading-font-size);
}
SeejĂ€rel mÀÀrake vÀÀrtus dĂŒnaamiliselt JavaScriptis tuvastatud keele pĂ”hjal:
// Eeldades globaalset muutujat vÔi funktsiooni kasutaja keele saamiseks
const userLanguage = getUserLanguage();
const heading = document.querySelector('h1');
if (userLanguage === 'ja') {
heading.style.setProperty('--heading-font-size', '1.8rem'); // Kohanda jaapani keele jaoks
} else {
heading.style.setProperty('--heading-font-size', '2rem'); // Vaikimisi
}
JuurdepÀÀsetavuse kaalutlused
@property'ga töötades on oluline pidada meeles juurdepÀÀsetavust:
- VÀrvikontrastsus: Tagage piisav vÀrvikontrastsus teksti ja tausta vahel. Kasutage vÀrvide jaoks kohandatud omadusi, et disaini hÔlpsalt uuendada vastavalt kontrastsusnÔuetele.
- Teksti suurus: Lubage kasutajatel teksti suurust kontrollida. Kasutage suhtelisi ĂŒhikuid (
rem,em) ja kohandatud omadusi, et muuta kirja skaleerimine lihtsaks. - Fookuse indikaatorid: Kohandage fookuse indikaatoreid, et muuta need selgelt nÀhtavaks. Kasutage kohandatud omadusi, et kontrollida fookuse piirjoonte vÀrvi ja stiili.
- ARIA atribuudid: Veenduge, et elementidel oleksid sobivad ARIA atribuudid, kui kasutate kohandatud omadusi olekute vÔi kÀitumise kontrollimiseks.
- Klaviatuuriga navigeerimine: Veenduge, et teie veebisait on klaviatuuriga kergesti navigeeritav, eriti kui interaktiivsete elementide haldamiseks kasutatakse kohandatud omadusi.
BrauseriĂŒlesed kaalutlused ja lahendused
Kuigi @property on vĂ”imas tööriist, pidage meeles, et brauseri tugi pole veel universaalselt rakendatud. Peaksite kasutama brauseriĂŒleseid tehnikaid, et leevendada toe puudumise mĂ”ju.
- Progressiivne tÀiustamine: Kujundage oma stiilid pÔhiliste CSS-muutujatega ja seejÀrel kasutage `@property`'t lisafunktsioonide jaoks toetatud brauserites.
- Funktsionaalsuse tuvastamine: Kasutage funktsionaalsuse tuvastamise meetodeid, et mÀÀrata, kas brauser toetab
@property't, enne kui rakendate selle abil stiile. Lihtsa kontrolli saab teha JavaScripti abil. - CSS-i varuvariandid: Pakkuge varuvÀÀrtusi omadustele, mida ei toetata. Seda saab teha omaduste otse mÀÀramisega vÔi erinevate muutujate kasutamisega toetatud ja mittetoetatud brauserite jaoks.
- Eeltöötlejad: Kasutage CSS-i eeltöötlejaid nagu Sass vĂ”i Less, et tĂ”lkida kĂ”rgema taseme struktuurid standardseks CSS-iks, mida saab kasutada brauserites, millel pole tĂ€ielikku `@property` tuge. Kuigi see lisab tĂ€iendava sammu, kaaluvad eelised sageli puudused ĂŒles.
NĂ€ide CSS-i varuvariandist:
.element {
--base-color: #333; /* VaikevÀÀrtus brauseritele ilma @property'ta */
color: var(--base-color);
}
@supports (color: --base-color) { /* @property funktsionaalsuse tuvastamine */
@property --base-color {
syntax: <color>;
inherits: false;
initial-value: #333;
}
/* Lisage siia keerulisem stiilimine, kasutades @property't */
}
Tööriistad ja teegid
Erinevad tööriistad ja teegid vÔivad aidata @property'ga töötamisel:
- PostCSS-i pistikprogrammid: Pistikprogrammid nagu `postcss-custom-properties` ja `postcss-custom-properties-experimental` aitavad teisendada kohandatud omadusi ja pakkuda tuge vanematele brauseritele, konverteerides `@property` definitsioonid samavÀÀrseteks CSS-reegliteks.
- Stylelint: Integreerige stylelint ja kohandatud reeglid vÔi pistikprogrammid, et valideerida oma kohandatud omaduste kasutust ja struktuuri.
- DisainisĂŒsteemide raamistikud: Integreerige
@propertypopulaarsetesse disainisĂŒsteemide raamistikkudesse nagu Ant Design, Material UI ja Bootstrap, et tagada disaini jĂ€rjepidevus ja pakkuda arendajatele sujuvamat kogemust.
KokkuvÔte
CSS @property on vĂ”imas tĂ€iendus veebiarenduse tööriistakasti, tuues kohandatud omadustele struktuuri, valideerimise ja dĂŒnaamilised vĂ”imalused. MÀÀratledes oma CSS-muutujate tĂŒĂŒbi ja kĂ€itumise, saate parandada koodi hooldatavust, suurendada disaini jĂ€rjepidevust ja luua robustsemaid ning prognoositavamaid stiililahendusi.
Kuna brauseritugi paraneb, muutub @property'i kaasamine oma projektidesse ĂŒha olulisemaks. VĂ”ttes omaks selles juhendis kirjeldatud parimad tavad, saate Ă€ra kasutada selle uue funktsiooni eeliseid ja kirjutada tĂ”husamat, hooldatavamat ja skaleeritavamat CSS-i. VĂ”tke @property omaks ja muutke oma veebiarenduse töövoogu!